package initialize

import (
	"leeframe/configs"
	"leeframe/internal/pkg/cron"
	"leeframe/internal/pkg/env"
	"leeframe/internal/pkg/logger"
	"leeframe/internal/pkg/mysql"
	"leeframe/internal/pkg/redis"

	"go.uber.org/zap/zapcore"
)

func Setup() {
	// env初始化
	env.SetUp()

	// 配置初始化
	configs.Setup()

	//日志初始化
	logger.SetLogs(zapcore.Level(configs.Get().Log.Level), configs.Get().Log.LogFormatJson, "./runtime/logs/")

	// 初始化mysql
	if err := mysql.InitMysql(); err != nil {
		logger.Error("init mysql error: ", err)
		panic(err)
	}

	// 初始化redis
	if err := redis.InitRedis(); err != nil {
		logger.Error("init redis error: ", err)
		panic(err)
	}

	go cron.StartCron()

}
